package com.clwl.supervise.superviseapp.entity.base;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import lombok.Data;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;
import java.util.List;
import java.util.Map;

/**
    * 企业档案
    */
@Data
@TableName(value = "TC_COMPANY")
//@KeySequence("TC_SEQ_COMP")
public class TcCompany implements Serializable {
    /**
     * 主键id
     */
    @TableId(value = "ID", type = IdType.AUTO)
    @JsonSerialize(using = ToStringSerializer.class)
    private Long id;

    /**
     * 是否删除：0-否，1-是
     */
    @TableField(value = "DELETE_FLAG")
    private Long deleteFlag;

    /**
     * 企业生产经营地址
     */
    @TableField(value = "ADDRESS")
    private String address;

    /**
     * 经营范围(经营项目)
     */
    @TableField(value = "BUSINESS_SCOPE")
    private String businessScope;

    /**
     * 城市
     */
    @TableField(value = "CITY")
    private String city;

    /**
     * 企业地址
     */
    @TableField(value = "COMANY_PIC")
    private String comanyPic;

    /**
     * 企业门头照缩略图
     */
    @TableField(value = "COMANY_THUMBNAIL")
    private String comanyThumbnail;

    /**
     * 企业名称
     */
    @TableField(value = "COMPANY_NAME")
    private String companyName;

    /**
     * 联系人
     */
    @TableField(value = "CONTACT")
    private String contact;

    /**
     * 联系电话
     */
    @TableField(value = "CONTACT_PHONE")
    private String contactPhone;

    /**
     * 创建时间
     */
    @TableField(value = "CREATE_TIME")
    private Date createTime;

    /**
     * 统一会社信用代码
     */
    @TableField(value = "CREDIT_CODE")
    private String creditCode;

    /**
     * 区县
     */
    @TableField(value = "DISTRICT")
    private String district;

    /**
     * 定位经纬度：经度,纬度
     */
    @TableField(value = "LNG_LAT")
    private String lngLat;

    /**
     * 企业法人
     */
    @TableField(value = "LEGAL_PERSON")
    private String legalPerson;

    /**
     * 企业法人电话
     */
    @TableField(value = "LEGAL_PHONE")
    private String legalPhone;

    /**
     * 许可证编码
     */
    @TableField(value = "LICENSE")
    private String license;

    /**
     * 食品经营许可证图片
     */
    @TableField(value = "LICENSE_PATH")
    private String licensePath;

    /**
     * 省份
     */
    @TableField(value = "PROVINCE")
    private String province;

    /**
     * 风险等级(企业分类)：A、B、C、D、E
     */
    @TableField(value = "RISK_LEVEL")
    private String riskLevel;

    /**
     * 风险等级评级时间
     */
    @TableField(value = "RISK_LEVEL_DATE")
    private String riskLevelDate;

    /**
     * 认领状态 0：已认领，1：未认领(默认1)
     */
    @TableField(value = "STATE")
    private String state;

    /**
     * 认领时间
     */
    @TableField(value = "STATE_DATE")
    private Date stateDate;

    /**
     * 街道
     */
    @TableField(value = "STREET")
    private String street;

    /**
     * 监管机构id
     */
    @TableField(value = "DEPT_ID")
    @JsonSerialize(using = ToStringSerializer.class)
    private Long deptId;

    /**
     * 监管人员1id
     */
    @TableField(value = "LEGAL_HEAD1_ID")
    @JsonSerialize(using = ToStringSerializer.class)
    private Long legalHead1Id;

    /**
     * 执法网格id
     */
    @TableField(value = "GRID_ID")
    @JsonSerialize(using = ToStringSerializer.class)
    private Long gridId;

    /**
     * 备注
     */
    @TableField(value = "REMARK")
    private String remark;

    /**
     * 许可证-发证日期
     */
    @TableField(value = "FZRQ")
    private String fzrq;

    /**
     * 经营状态：0正常，1异常
     */
    @TableField(value = "MANAGE_STATUS")
    private String manageStatus;

    /**
     * 许可证-状态码(经营企业:1核发 2变更 3换证 4延续 5补发 6注销 7撤销 8吊销；10首次备案 ；11变更备案；12-申请注销 ；生产企业:1核发 2换证 3变更 4延续 5补领 6注销 7吊销)
     */
    @TableField(value = "LICENSE_STAT")
    private String licenseStat;

    /**
     * 住所
     */
    @TableField(value = "ZS")
    private String zs;

    /**
     * 许可证-发证机关
     */
    @TableField(value = "FZJG")
    private String fzjg;

    /**
     * 许可证-有效期至
     */
    @TableField(value = "YXQZ")
    private String yxqz;

    /**
     * 乡镇（街道）
     */
    @TableField(value = "DISTRICT_NAME")
    private String districtName;

    /**
     * 创建人id
     */
    @TableField(value = "CREATOR_ID")
    @JsonSerialize(using = ToStringSerializer.class)
    private Long creatorId;

    /**
     * 修改时间
     */
    @TableField(value = "UPDATE_TIME")
    private Date updateTime;

    /**
     * 修改人id
     */
    @TableField(value = "UPDATOR_ID")
    @JsonSerialize(using = ToStringSerializer.class)
    private Long updatorId;

    /**
     * 删除时间
     */
    @TableField(value = "DEL_TIME")
    private Date delTime;

    /**
     * 删除操作人id
     */
    @TableField(value = "DEL_OPTR")
    @JsonSerialize(using = ToStringSerializer.class)
    private Long delOptr;

    /**
     * 是否校园周边（0否；1是）
     */
    @TableField(value = "IS_XIAOYUAN")
    private String isXiaoyuan;

    /**
     * 是否含特殊食品
     */
    @TableField(value = "IS_TESHI")
    private String isTeshi;
    /**
     * 日常检查开始计算日期,为了判断企业入网日期，移除列异这两种情况在日期之前还是过期未检查状态
     */
    @TableField(value = "INSPECT_START_DATE")
    private Date inspectStartDate;
    /**
     * 售卖的特食类型1、保健食品 2、婴幼儿配方乳粉 3、特殊医学用途配方食品 4、其他婴幼儿配方食品
     */
    @TableField(value = "TESHI_LEIXING")
    private String teshiLeixing;

    /**
     * 监管机构名称
     */
    @TableField(value = "DEPT_NAME")
    private String deptName;

    /**
     * 监管人员1姓名
     */
    @TableField(value = "LEGAL_HEAD1_NAME")
    private String legalHead1Name;

    /**
     * 监管人员2id
     */
    @TableField(value = "LEGAL_HEAD2_ID")
    @JsonSerialize(using = ToStringSerializer.class)
    private Long legalHead2Id;

    /**
     * 监管人员2姓名
     */
    @TableField(value = "LEGAL_HEAD2_NAME")
    private String legalHead2Name;

    /**
     * 监管机构区局id
     */
    @TableField(value = "DEPT_QU_ID")
    @JsonSerialize(using = ToStringSerializer.class)
    private Long deptQuId;

    /**
     * 监管机构区局名称
     */
    @TableField(value = "DEPT_QU_NAME")
    private String deptQuName;

    /**
     * 是否异常主体（0否；1是）
     */
    @TableField(value = "IS_YICHANG")
    private String isYichang;

    /**
     * 是否明厨亮灶（0、否；1、是）
     */
    @TableField(value = "IS_MINGCHU")
    private String isMingchu;

    /**
     * 明厨亮灶类型（1、视频厨房；2、网络直播；3、透明明档；4、阳光厨房；5、其他）
     */
    @TableField(value = "MINGCHU_LX")
    private String mingchuLx;

    /**
     * 是否是已认证企业（1：ISO9000，2：HCCP，3：gmp，4：ISO2002，5：其他）
     */
    @TableField(value = "IS_RENZHENG")
    private String isRenzheng;

    /**
     * 是否农批市场（0、否；1、是）
     */
    @TableField(value = "IS_GONGPI")
    private String isGongpi;

    /**
     * 是否仅预包装食品
     */
    @TableField(value = "IS_YBZ")
    private String isYbz;

    /**
     * 是否信息化追溯企业：0否，1是
     */
    @TableField(value = "IS_ZHUISU")
    private String isZhuisu;

    /**
     * 是否设座小餐饮(固定食品制售摊贩中的)：0否，1是
     */
    @TableField(value = "IS_SHEZUO")
    private String isShezuo;

    /**
     * 是否为食品经营项目包含餐饮服务的食品销售经营者：0否，1是
     */
    @TableField(value = "IS_FOOD_SERVICES_SALE")
    private String isFoodServicesSale;

    /**
     * 是否为贮存品类包含畜禽水产品的冷藏冷冻食品贮存服务提供者：0否，1是
     */
    @TableField(value = "IS_FROZEN_FOOD_STORAGE")
    private String isFrozenFoodStorage;

    /**
     * 是否为经营品种包含畜禽水产品的食品销售者：0否，1是
     */
    @TableField(value = "IS_FROZEN_FOOD_PRODUCTS")
    private String isFrozenFoodProducts;

    /**
     * 从业人员数量
     */
    @TableField(value = "PERSON_TOTAL")
    private Long personTotal;

    /**
     * 年度营业收入（万元）
     */
    @TableField(value = "ANNUAL_INCOME")
    @JsonSerialize(using = ToStringSerializer.class)
    private BigDecimal annualIncome;

    /**
     * 标注状态 0：已标注，1：未标注(默认1)
     */
    @TableField(value = "MARK_STAT")
    private String markStat;

    /**
     * 所属环节(监管环节)code
     */
    @TableField(value = "SUP_PROCESS")
    private String supProcess;

    /**
     * 主体业态细类id
     */
    @TableField(value = "COMPANY_TYPE_TWO_ID")
    @JsonSerialize(using = ToStringSerializer.class)
    private Long companyTypeTwoId;

    /**
     * 主体业态id
     */
    @TableField(value = "COMPANY_TYPE_ID")
    @JsonSerialize(using = ToStringSerializer.class)
    private Long companyTypeId;

    /**
     * 日常监管周期(一年几次检查)
     */
    @TableField(value = "SUP_PERIOD")
    private String supPeriod;

    /**
     * 创建人姓名
     */
    @TableField(value = "CREATOR")
    private String creator;

    /**
     * 修改人姓名
     */
    @TableField(value = "UPDATED_BY")
    private String updatedBy;

    /**
     * 食用人群：字典risk_level_consumer
     */
    @TableField(value = "CONSUMER_GROUP")
    private String consumerGroup;

    /**
     *  抽样分数
     */
    @TableField(value = "SAMPLING_SCORE")
    private Double samplingScore;

    /**
     *  约谈分数
     */
    @TableField(value = "APPOINTMENT_SCORE")
    private Double appointmentScore;

    /**
     *  普众GPS坐标系
     */
    @TableField(value = "PZLNG_LAT")
    private String pzLngLat;

    /**
     * 删除人姓名
     */
    @TableField(value = "DELETED_BY")
    private String deletedBy;
    /**
     * 是否注销1-是，0-否 （每天同步）
     */
    @TableField(value = "IS_ZHUXIAO")
    private String isZhuxiao;


    /**
     * 招牌(门头)名称
     */
    private String doorHeadName;


    /**
     * 招牌名称（弃用）
     */
    private String signName;
    /**
     * 是否通过网络经营：0-否、1-是
     *
     */
    @TableField(value = "IS_OPERATE")
    private String isOperate;

    /**
     * 静态评分状态(2-待评分;1-已评分) 静态评分每年一月一日这个数据清空
     */
    @TableField(value = "STATIC_SCORE_STATUS")
    private String staticScoreStatus;

    /**
     * 动态评分状态(2-未评分;1-已评分)
     */
    @TableField(value = "DYNAMIC_SCORE_STAUTS")
    private String dynamicScoreStauts;
    /**
     * 动态评分ID
     */
    @TableField(value = "DYNAMIC_SCORE_ID")
    private Long dynamicScoreId;
    /**
     * 当前年份静态评分的id静态评分每年一月一日这个数据清空
     */
    @TableField(value = "STATIC_SCORE_ID")
    private Long staticScoreId;


    /**
     * (经营环节)当前年份的风险等级评定数据ID每年年初清空
     */
    @TableField(value = "RISK_LEVEL_ID")
    private Long riskLevelId;
    /**
     * (经营环节)当前年份最后一次年度风险等级评定数据ID每年年初清空
     */
    @TableField(value = "ADJUSTMENT_LEVEL_ID")
    private Long adjustmentLevelId;

    /**
     * 是否需要重新评级0-不需要;1-需要 (当许可变更或延续发生变化的时候，会将字段改编成1)
     */
    @TableField(value = "IS_RE_RATING")
    private Integer isReRating;


    /**
     * 检查距离限制
     */
    @TableField(exist = false)
    private String distance;

    /**
     * 异常核查记录列表
     */
    @TableField(exist = false)
    private List<Map<String, Object>> abnormalReasonTypeList;

    @TableField(exist = false)
    private String superviseLink;

    @TableField(exist = false)
    private String businessCategory;
    /** 是否拥有权限:1-有，0-无 */
    @TableField(exist = false)
    private String isAuthority;

    /** 网格负责人1姓名*/
    @TableField(exist = false)
    private String gridPerson1Id;

    /** 网格负责人1姓名*/
    @TableField(exist = false)
    private String gridPerson1Name;

    /** 网格负责人1姓名*/
    @TableField(exist = false)
    private String gridPerson2Id;

    /** 网格负责人2姓名*/
    @TableField(exist = false)
    private String gridPerson2Name;
    /**
     * 网格负责人
     */
    @TableField(exist = false)
    private String gridHeadName;
    /**
     * 企业业态编号
     */
    @TableField(exist = false)
    private String companyTypeCode;
    /**
     * 企业业态名称
     */
    @TableField(exist = false)
    private String companyTypeName;
    /**
     *  二级企业业态名称
     */
    @TableField(exist = false)
    private String companyTypeTwoName;

    private static final long serialVersionUID = 1L;
}
